home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / make / mkmk-1.0 / mkmk-1 / mkmk / curses.c next >
Encoding:
C/C++ Source or Header  |  1993-11-28  |  2.2 KB  |  126 lines

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <ncurses.h>
  4. #include "mkmk.h"
  5.  
  6. extern int lib;
  7.  
  8. void
  9. init_curses()
  10. {
  11.   initscr();
  12.   cbreak();
  13.   noecho(); 
  14.   wrefresh(stdscr);
  15. }
  16.  
  17. void 
  18. credits()
  19. {
  20.   printw("Mkmk %s (linux)\nCopyright 1993 Free Software Foundation, Inc...\n\n\n\n",VERSION);
  21. }
  22.  
  23. void 
  24. boundary_input(char *string, char *prompt,char *defaults, int ACCEPT_NONE, 
  25.            char *teststr)
  26. {
  27.   int curx,cury;
  28.   int length=0;
  29.   char x;
  30.   
  31.   curx=stdscr->_curx;
  32.   cury=stdscr->_cury;
  33.   move(3,0);
  34.   clrtoeol();
  35.   printw("%s", teststr);
  36.   stdscr->_curx=curx;
  37.   stdscr->_cury=cury;
  38.   printw("[%s] (%s",prompt,defaults); 
  39.   wrefresh(stdscr);
  40.   
  41.   insch(')'); 
  42.   stdscr->_curx=stdscr->_curx-strlen(defaults);  
  43.   wrefresh(stdscr);
  44.   
  45.   do
  46.     {
  47.       x=getch();
  48.       switch (x)
  49.     {
  50.     case '\n':
  51.       if(length==0)
  52.         if((strcmp(defaults,"none"))==0 && ACCEPT_NONE)
  53.           {
  54.         strcpy(string," ");
  55.         stdscr->_curx=stdscr->_curx+strlen(defaults);   
  56.         break;
  57.           }
  58.         else if(ACCEPT_NONE==0)
  59.           { 
  60.         x=0; 
  61.         break; 
  62.           } 
  63.  
  64.         else
  65.           {
  66.         strcpy(string,defaults);
  67.         stdscr->_curx=stdscr->_curx+strlen(defaults);   
  68.         break; 
  69.           }
  70.       break;
  71.     case 127:
  72.       if (length)
  73.         {      
  74.           clrtoeol();
  75.           stdscr->_curx=stdscr->_curx-1; 
  76.           delch();
  77.           insch(')');
  78.           string[length--]=0;
  79.           wrefresh(stdscr);
  80.         }
  81.       if(length%50==0 && length > 0)
  82.         {
  83.           delch();
  84.           stdscr->_cury=stdscr->_cury-1; 
  85.           stdscr->_curx=stdscr->_curx+50; 
  86.           insch(')'); 
  87.           wrefresh(stdscr);
  88.         }
  89.       break;
  90.     default:
  91.       if(length==0)
  92.         {
  93.           clrtoeol();
  94.           wrefresh(stdscr);
  95.           string[length++]=x; 
  96.           string[length]=0;
  97.           insch(x); 
  98.           stdscr->_curx=stdscr->_curx+1; 
  99.           wrefresh(stdscr);
  100.           insch(')'); 
  101.           break; 
  102.         }   
  103.       if(length%50==0)
  104.         {        
  105.           delch();
  106.           stdscr->_cury=stdscr->_cury+1;  
  107.           stdscr->_curx=stdscr->_curx-50; 
  108.           insch(')'); 
  109.           wrefresh(stdscr);
  110.         }
  111.  
  112.       string[length++]=x; 
  113.       string[length]=0;
  114.       insch(x); 
  115.       stdscr->_curx=stdscr->_curx+1; 
  116.       break;
  117.     }
  118.     } while ((length < 1000)  && (x != '\n'));
  119.   stdscr->_curx=stdscr->_curx+2; 
  120.   printw("\n");
  121.   wrefresh(stdscr);
  122. }
  123.  
  124.  
  125.  
  126.